In most communication and storage systems, timing (or clocking) information is extracted from the received signal. This recovered timing information is often used to resample the received signal such that the detector in such a system can operate on samples that are synchronous to the data being received. This recovery is often achieved using a sampling device, such as an analog-to-digital converter (ADC) or a sample and hold (S/H) circuit.
Both the ADC and the S/H circuit use a reclocking signal to sample a continuous waveform. The clock input of such a system is usually obtained from a voltage controlled oscillator (VCO). The input signal controlling the VCO frequency can be used to change the point on the continuous waveform.
In digital systems it is often desirable to sample the signal with an asynchronous clock and use digital signal processing to process the signal and recover the timing information. Such a system is described in papers by Gardner. Floyd M. Gardner, “Interpolation in Digital Modems-Part I: Fundamentals, IEEE Transactions on Communications, 41(6), June 1993, and Floyd M. Gardner, “Interpolation in Digital Modems-Part II: Implementation and Performance, IEEE Transactions on Communications, 41(6), June 1993.
The use of digital signal processing avoids the requirement of analog components in the timing recovery loop. Also digital processing, such as equalization, can be achieved before the timing information is recovered.
An important function of such a digital timing recovery system is a variable interpolator. This function produces an output signal which is a time shifted version of the input signal. The time shift is determined from a programmable input which in a timing recovery application may be required to change on a sample to sample basis. In particular, a frequency be achieved by having a continuously varying time delay on the input.
FIG. 1 shows a block diagram of an interpolator 10. Interpolator 10 receives a sequence of input signals X(kT) and time shifts this sequence by a time τk. The output of interpolator 10 provides a sequence of signals Y(kT−LT+τk−m). In practice the time shift input τk can adjust the delay over a limited range, usually one sample period T. Typically 0≦τ<T or −T/2≦τ<T/2.
A basic discrete time interpolation function can be implemented as shown in FIG. 2. The interpolator 10 includes a finite impulse response (FIR) filter 12 and a read only memory (ROM) 14.
FIR filter 12 receives input sequence Xk, which is applied to a group of serially coupled delay elements 16. Each delay element 16 provides an output that is one clock cycle delayed from its input. The timed sequence of signals X is provided to each of a number of multipliers 18. The multipliers receive a second input from ROM 14 and provide the results to summer (or adder) 20. The output of summer 20 is the sequence of signals Yk.
In operation, the time shifting is achieved by FIR filter 12. In order to provide a time shift to the input signal, the coefficients of the filter 12 should be a sinc function. In particular, for a time shift of τ the coefficients hk should behk=sinc(k+τ) where k=−∞, . . . , −1, 0, 1, . . . , ∞where the sinc function is defined assinc(x)=sin(πx)/πx.
While an ideal interpolator response extends over an infinite length of time, in practice, the filter length will be truncated to a practical length. This can be achieved in particular when the system is oversampled or the energy in the signal is not spread equally over the whole signal band.
The coefficients of the filter change depending on the required time shift τ and may be calculated or looked up in a lookup table implemented by read only memory 14. FIG. 2 shows a ROM based lookup table. In this case, the number of possible values of τ is limited by the size of the ROM 14.
Recently a cost reduced interpolation scheme has been described in U.S. Pat. No. 5,760,984 issued Jun. 2, 1998 and entitled “Cost Reduced Interpolated Timing Recovery in a Sampled Amplitude Read Channel,” incorporated herein by reference. This interpolator uses three parallel prefilters and a three-tap interpolator.